package 系统复习.面试题.滑动窗口;

/**
 * 给定一个二进制数组 nums ，如果最多可以翻转一个 0 ，则返回数组中连续 1 的最大个数。
 */
public class L487 {

    public int findMaxConsecutiveOnes(int[] nums) {
        int res = 0, count = 0;
        for(int l = 0, r = 0; r < nums.length; r++) {
            if(nums[r] == 0) {
                count++;
                while(count > 1) {
                    count -= nums[l++] == 0 ? 1 : 0;
                }
            }
            res = Math.max(res, r - l + 1);
        }

        return res;
    }

    public static void main(String[] args) {
        L487 l487 = new L487();
        System.out.println(l487.findMaxConsecutiveOnes(new int[]{1,0,1,1,0,1}));
    }

}
